home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Think Class Libraries / Item Class / Item headers / CItem.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-30  |  2.1 KB  |  93 lines  |  [TEXT/KAHL]

  1. /*
  2.  * File:        CItem.h
  3.  * Created:        7/25/93
  4.  * Desc:        An item that can be displayed in an ItemTable Pane.
  5.  *                The item keeps a reference to its parent (the root
  6.  *                objects parent is NULL), and a reference to each
  7.  *                of its children (subItems).
  8.  *
  9.  * Superclass:    CObject.
  10.  * Uses:        <NONE>.
  11.  * Original Author:    Atul Barve
  12.  * Modifications:    W. Wesley Monroe
  13.  *
  14.  * Copyright © 1993 Animas Software Production. All rights reserved.
  15.  */
  16.  
  17. #pragma once
  18.  
  19. class CItem : public CObject {
  20.  
  21.     short    fCanExpand;
  22.     short    fCloseIconID;
  23.     short    fInterimIconID;
  24.     short    fOpenIconID;
  25.     short    fIconID;
  26.     
  27.     short    fExpanded;
  28.     CList    *fSubItems;
  29.     CItem    *fParent;
  30.     short    fLevel;
  31.  
  32. protected:
  33.     char    *fText;
  34.  
  35. public:
  36.  
  37.     void    IItem(void);
  38.     virtual void INewRootItem(short canExpand, short iconID, short expanded,
  39.                              StringPtr text);
  40.     virtual void Dispose(void);
  41.  
  42.     virtual void RemoveSubItem(CItem *child);
  43.     virtual void AppendSubItem(CItem *item);
  44.     virtual    void GraftSubItem(CItem *item);
  45.     virtual void SetNthSubItem(CItem *item, short n);
  46.     virtual CItem *GetNthSubItem(short n);
  47.  
  48.     Boolean CanAccept(CList *selectedItems);
  49.  
  50.         // Methods for getting and setting instance variables.
  51.     void    GetDisplayText(char *text);
  52.     CItem    *GetParent(void);
  53.     short    GetLevel(void);
  54.     short    GetCanExpand(void);
  55.     short     GetIconID(void);
  56.     short     GetExpanded(void);
  57.     void    SetDisplayText(char *text);
  58.     void    SetParent(CItem *parent);
  59.     void    SetLevel(short level);
  60.     void    SetCanExpand(short flag);
  61.     void     SetIconID(short id);
  62.     void     SetExpanded(short flag);
  63.     short    GetNumSubItems(void);
  64.  
  65.     virtual void ReAllocSubItems(void);
  66.     virtual CItem *CopyItem(Boolean copySubItems);
  67.  
  68.     virtual void GetExtraItemData(Ptr *data);
  69.  
  70.         // methods relating to the expando icon's
  71.     void    SetCloseIconID(short id);
  72.     void    SetOpenIconID(short id);
  73.     void    SetInterimIconID(short id);
  74.  
  75.     short    GetCloseIconID(void);
  76.     short    GetOpenIconID(void);
  77.     short    GetInterimIconID(void);
  78.  
  79.         // Build the items tree into data....
  80.     virtual void BuildExtraItemData(Handle data);
  81.     virtual void BuildRes(Handle data);
  82.  
  83. };
  84.  
  85. typedef    struct    tItem {
  86.     short    canExpand;    // may not be necessary?
  87.     short    expanded;
  88.     short    iconID;
  89.     short    unused1;
  90.     short    unused2;
  91.     char    text[];
  92. } tItem;
  93.